var name = 'window' //window.name = 'window'
var person = {
  name: 'person',
  sayName: function () {
    console.log(this.name)
  }
}

function sayName() {
  var sss = person.sayName
  sss() //独立函数调用，默认绑定，this指向window全局对象，所以结果为 'window'
  person.sayName(); //隐式绑定到person，结果为 'person'
  (person.sayName)(); //隐式调用person,跟上一句一样
  (b = person.sayName)(); //间接函数引用(存在赋值表达式将会把赋值表达式右侧的结果返回，其实就是一个独立函数)，window
}

sayName()
